Various embodiments of the present invention relate to resource management, and more specifically, to a method and apparatus for resource allocation in a cloud environment.
With the development of computer hardware and software, cloud computing can provide more powerful computing capabilities. With the support of cloud computing, consumers of the cloud computing can leverage a conventional local computing device to invoke powerful computing capabilities in a cloud environment. On one hand, cloud computing consumers do not have to purchase a dedicated high-performance computing device. On the other hand, they do not have to execute a complex setting process with respect to a high-performance computing device; instead, they just submit a simple resource request to a provider of the cloud computing before receiving dedicated services from such a provider.
For example, an online seller is a typical example of the cloud computing consumers. The online seller might wish to build an online shopping website (virtual system) and display information of items for sale, such as name, model, photo, function description and the like, on pages of the online shopping website. In the context of the present invention, a virtual system may logically comprise at least one virtual machine in a cloud computing environment, and the at least one virtual machine is for performing desired functions of cloud computing consumers.
A concrete example of a virtual system may be an online shopping website, an online hotel booking website, an online ticket booking website, etc. Note in the context of the present invention, each of these websites may be a separate virtual system. For example, an online shopping website for skin care products may be one virtual system, while an online shopping website for electronics may be another virtual system.
In a traditional cloud computing environment, an online seller can request a provider of the cloud computing environment for a specific amount of resources for storing the above information and performing other relevant functions. When resources requested by the online seller are not adequate to support current demands (for example, access to a website by a large number of users leads to overload of the website server), usually additional computing resources in the cloud computing environment should be requested, so as to alleviate the computing resource shortage in the servers of the online seller.
In an existing cloud computing environment, on one hand, the total amount of computing resources relies on the support provided by physical computing nodes in the cloud computing environment, so cloud computing consumers cannot request computing resources to the cloud computing environment without limit; on the other hand, cloud computing consumers must pay for requested computing resources. If an online seller requests computing resources according to the demand at the peak of computing resources, then resource waste will be caused when access to the shopping website is at the bottom.
Therefore, in a cloud computing environment where the total amount of computing resources are rather limited, it becomes a burning issue how to ensure applications on each virtual machine in a virtual system to run normally and adaptively schedule computing resources in case of virtual machine overload.